<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="google-site-verification" content="xBT4GhYoi5qRD5tr338pgPM5OWHHIDR6mNg1a3euekI" />
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <meta name="description" content="">
    <meta name="keyword"  content="Tooi">
    <link rel="shortcut icon" href="/img/favicon.ico">

    <title>
        
        使用 Docker Registry 搭建 Docker 私服 - Tooi的博客 | Tooi-Blog
        
    </title>

    <!-- Custom CSS -->
    <link rel="stylesheet" href="/css/aircloud.css">
    <link rel="stylesheet" href="/css/gitment.css">
    <!--<link rel="stylesheet" href="https://imsun.github.io/gitment/style/default.css">-->
    <link href="//at.alicdn.com/t/font_620856_pl6z7sid89qkt9.css" rel="stylesheet" type="text/css">
    <!-- ga & ba script hoook -->
    <script></script>
</head>

<body>

<div class="site-nav-toggle" id="site-nav-toggle">
    <button>
        <span class="btn-bar"></span>
        <span class="btn-bar"></span>
        <span class="btn-bar"></span>
    </button>
</div>

<div class="index-about">
    <i> 瞄准月亮。 </i>
</div>

<div class="index-container">
    
    <div class="index-left">
        
<div class="nav" id="nav">
    <div class="avatar-name">
        <div class="avatar ">
            <img src="/img/avatar.jpg" />
        </div>
        <div class="name">
            <i>Tooi6</i>
        </div>
    </div>
    <div class="contents" id="nav-content">
        <ul>
            <li >
                <a href="/">
                    <i class="iconfont icon-shouye1"></i>
                    <span>主页</span>
                </a>
            </li>
            <li >
                <a href="/tags">
                    <i class="iconfont icon-biaoqian1"></i>
                    <span>标签</span>
                </a>
            </li>
            <li >
                <a href="/archives">
                    <i class="iconfont icon-guidang2"></i>
                    <span>存档</span>
                </a>
            </li>
            <li >
                <a href="/about/">
                    <i class="iconfont icon-guanyu2"></i>
                    <span>关于</span>
                </a>
            </li>
            
            <li>
                <a id="search">
                    <i class="iconfont icon-sousuo1"></i>
                    <span>搜索</span>
                </a>
            </li>
            
        </ul>
    </div>
    
        <div id="toc" class="toc-article">
    <ol class="toc"><li class="toc-item toc-level-3"><a class="toc-link" href="#概述"><span class="toc-text">概述</span></a></li><li class="toc-item toc-level-3"><a class="toc-link" href="#部署和使用-Docker-Registry"><span class="toc-text">部署和使用 Docker Registry</span></a><ol class="toc-child"><li class="toc-item toc-level-4"><a class="toc-link" href="#部署环境"><span class="toc-text">部署环境</span></a></li><li class="toc-item toc-level-4"><a class="toc-link" href="#部署"><span class="toc-text">部署</span></a></li><li class="toc-item toc-level-4"><a class="toc-link" href="#客户端使用-Registry-私服"><span class="toc-text">客户端使用 Registry 私服</span></a></li></ol></li><li class="toc-item toc-level-3"><a class="toc-link" href="#部署-Docker-Registry-WebUI"><span class="toc-text">部署 Docker Registry WebUI</span></a></li></ol>
</div>
    
</div>


<div class="search-field" id="search-field">
    <div class="search-container">
        <div class="search-input">
            <span id="esc-search"> <i class="icon-fanhui iconfont"></i></span>
            <input id="search-input"/>
            <span id="begin-search">搜索</span>
        </div>
        <div class="search-result-container" id="search-result-container">

        </div>
    </div>
</div>

        <div class="index-about-mobile">
            <i> 瞄准月亮。 </i>
        </div>
    </div>
    
    <div class="index-middle">
        <!-- Main Content -->
        


<div class="post-container">
    <div class="post-title">
        使用 Docker Registry 搭建 Docker 私服
    </div>

    <div class="post-meta">
        <span class="attr">发布于：<span>2019-11-06 21:37:52</span></span>
        
        <span class="attr">标签：/
        
        <a class="tag" href="/tags/#Docker" title="Docker">Docker</a>
        <span>/</span>
        
        <a class="tag" href="/tags/#Docker Registry" title="Docker Registry">Docker Registry</a>
        <span>/</span>
        
        
        </span>
        <span class="attr">访问：<span id="busuanzi_value_page_pv"></span>
</span>
</span>
    </div>
    <div class="post-content ">
        <h3 id="概述"><a href="#概述" class="headerlink" title="概述"></a>概述</h3><blockquote>
<p>Docker官方提供了Docker Hub来维护管理所有的镜像,只是对于免费用户而言,只能创建一个私有仓库,付费用户才拥有更多私有仓库的权限,对此<strong>官方开源</strong>了Docker Registry的源代码,我们可以通过它在局域网内部搭建私有的镜像注册中心.</p>
</blockquote>
<h3 id="部署和使用-Docker-Registry"><a href="#部署和使用-Docker-Registry" class="headerlink" title="部署和使用 Docker Registry"></a>部署和使用 Docker Registry</h3><h4 id="部署环境"><a href="#部署环境" class="headerlink" title="部署环境"></a>部署环境</h4><table>
<thead>
<tr>
<th>操作系统</th>
<th>Ubuntu Server 16.04 LTS</th>
</tr>
</thead>
<tbody><tr>
<td>cpu</td>
<td>2核</td>
</tr>
<tr>
<td>内存</td>
<td>2G</td>
</tr>
</tbody></table>
<h4 id="部署"><a href="#部署" class="headerlink" title="部署"></a>部署</h4><blockquote>
<p>Docker 镜像：<a href="https://hub.docker.com/_/registry" target="_blank" rel="noopener">https://hub.docker.com/_/registry</a>  </p>
</blockquote>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br></pre></td><td class="code"><pre><span class="line">### docker-compose.yml  </span><br><span class="line">version: &apos;3.1&apos;</span><br><span class="line">services:</span><br><span class="line">  registry:</span><br><span class="line">    image: registry</span><br><span class="line">    restart: always</span><br><span class="line">    container_name: registry</span><br><span class="line">    ports:</span><br><span class="line">      - 5000:5000</span><br><span class="line">    volumes:</span><br><span class="line">      - /usr/local/docker/registry/data:/var/lib/registry</span><br><span class="line">###</span><br><span class="line"></span><br><span class="line"># 运行  </span><br><span class="line">docker-compose up</span><br><span class="line"></span><br><span class="line"># 测试 访问: http://ip:5000/v2/</span><br></pre></td></tr></table></figure>

<h4 id="客户端使用-Registry-私服"><a href="#客户端使用-Registry-私服" class="headerlink" title="客户端使用 Registry 私服"></a>客户端使用 Registry 私服</h4><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br></pre></td><td class="code"><pre><span class="line">### 修改 /etc/docker/daemon.json 文件（没有则添加），加速器可以换成阿里云</span><br><span class="line">&#123;</span><br><span class="line">  &quot;registry-mirrors&quot;: [</span><br><span class="line">    &quot;https://registry.docker-cn.com&quot;</span><br><span class="line">  ],</span><br><span class="line">  &quot;insecure-registries&quot;: [</span><br><span class="line">    &quot;ip:5000&quot;</span><br><span class="line">  ]</span><br><span class="line">&#125;</span><br><span class="line">###</span><br><span class="line"></span><br><span class="line"># 重启</span><br><span class="line">systemctl daemon-reload</span><br><span class="line">systemctl restart docker</span><br><span class="line"></span><br><span class="line"># 查看配置是否成功</span><br><span class="line">docker info</span><br><span class="line"></span><br><span class="line"># 上传本地镜像到 Registry</span><br><span class="line">## 标记本地镜像库（ip:port/image_name:tag，该格式为标记版本号）</span><br><span class="line">docker tag tomcat 192.168.213.128:5000/tomcat:8.5.34</span><br><span class="line"></span><br><span class="line">## 提交镜像到仓库</span><br><span class="line">docker push 192.168.213.128:5000/tomcat:8.5.34</span><br><span class="line"></span><br><span class="line"># 查看全部镜像</span><br><span class="line">curl -XGET http://192.168.213.128:5000/v2/_catalog</span><br><span class="line"></span><br><span class="line"># 查看指定镜像</span><br><span class="line">curl -XGET http://192.168.213.128:5000/v2/nginx/tags/list</span><br><span class="line"></span><br><span class="line"># 从 Registry 拉去镜像  </span><br><span class="line">docker pull 192.168.213.128:5000/nginx</span><br></pre></td></tr></table></figure>

<h3 id="部署-Docker-Registry-WebUI"><a href="#部署-Docker-Registry-WebUI" class="headerlink" title="部署 Docker Registry WebUI"></a>部署 Docker Registry WebUI</h3><blockquote>
<p>给 Registry 安装一个UI界面<br>镜像：<a href="https://hub.docker.com/r/konradkleine/docker-registry-frontend" target="_blank" rel="noopener">https://hub.docker.com/r/konradkleine/docker-registry-frontend</a></p>
</blockquote>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br></pre></td><td class="code"><pre><span class="line">### docker-compose.yml </span><br><span class="line">version: &apos;3.1&apos;</span><br><span class="line">services:</span><br><span class="line">  registry:</span><br><span class="line">    image: registry</span><br><span class="line">    restart: always</span><br><span class="line">    container_name: registry</span><br><span class="line">    ports:</span><br><span class="line">      - 5000:5000</span><br><span class="line">    volumes:</span><br><span class="line">      - /usr/local/docker/registry/data:/var/lib/registry</span><br><span class="line">  frontend:</span><br><span class="line">    image: konradkleine/docker-registry-frontend:v2</span><br><span class="line">    ports:</span><br><span class="line">      - 8080:80</span><br><span class="line">    volumes:</span><br><span class="line">      - ./certs/frontend.crt:/etc/apache2/server.crt:ro</span><br><span class="line">      - ./certs/frontend.key:/etc/apache2/server.key:ro</span><br><span class="line">    environment:</span><br><span class="line">      - ENV_DOCKER_REGISTRY_HOST=192.168.213.128</span><br><span class="line">      - ENV_DOCKER_REGISTRY_PORT=5000</span><br><span class="line">###</span><br><span class="line"></span><br><span class="line"># 启动</span><br><span class="line">docker-compose up</span><br><span class="line"></span><br><span class="line"># 访问：http://192.168.213.128:8080/</span><br></pre></td></tr></table></figure>

        
            <div class="donate-container">
    <div class="donate-button">
        <button id="donate-button">赞赏</button>
    </div>
    <div class="donate-img-container hide" id="donate-img-container">
        <img id="donate-img" src="" data-src="/img/donate.png">
        <p> 感谢鼓励 </p>
    </div>
</div>
        
        <br />
        <div id="comment-container">
        </div>
        <div id="disqus_thread"></div>

        <div id="lv-container">
        </div>

    </div>
</div>

    </div>
</div>


<footer class="footer">
    <ul class="list-inline text-center">
        
        

        

        

        
        <li>
            <a target="_blank"  href="https://github.com/Tooi6">
                            <span class="fa-stack fa-lg">
                                <i class="iconfont icon-github"></i>
                            </span>
            </a>
        </li>
        

        

    </ul>
    
    <p>
        <span>/</span>
        
        <span><a href="https://github.com/Tooi6" target="_blank" rel="noopener">Tooi6</a></span>
        <span>/</span>
        
        <span><a href="#">Tooi-Blog</a></span>
        <span>/</span>
        
        <span><a href="#">It helps SEO</a></span>
        <span>/</span>
        
    </p>
    
    <p>
        <span id="busuanzi_container_site_pv">
            <span id="busuanzi_value_site_pv"></span>PV
        </span>
        <span id="busuanzi_container_site_uv">
            <span id="busuanzi_value_site_uv"></span>UV
        </span>
        Created By <a href="https://hexo.io/" target="_blank" rel="noopener">Hexo</a>  Theme <a href="https://github.com/aircloud/hexo-theme-aircloud" target="_blank" rel="noopener">AirCloud</a></p>
</footer>




</body>

<script>
    // We expose some of the variables needed by the front end
    window.hexo_search_path = "search.json"
    window.hexo_root = "/"
    window.isPost = true
</script>
<script src="https://cdn.bootcss.com/jquery/3.3.1/jquery.min.js"></script>
<script src="/js/index.js"></script>
<script async src="//busuanzi.ibruce.info/busuanzi/2.3/busuanzi.pure.mini.js"></script>




</html>
